<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        /**
        *   元字符：具有特殊含义的字符
        **/
        //      \s:匹配任何的空白字符
        //      \S：匹配任何非空白字符
        //      \d：匹配任何数字等价于[0-9]
        //      \D:匹配任何非数字字符
        //      \w:匹配任何数字，字母，或下划线
        //      \W：任何非单字字符
        //      .：匹配除了换行符之外的任意字符


        /**
         *  量词：指定字符出现的次数
        **/
        //      {n}：匹配前一项的n次   
        //   {n，m}：匹配前一项至少n次，但是不能超过m次
        //    {n，}：匹配前一项n次，或者多次
        //        *：匹配前一项0次或者多次，等价于{0，}  
        //        +：匹配前一项一次或者多次，等价于{1，}
        //       ？：匹配前一项的0次或者1次也就是意味着前一项是可选的，等价于{0,1}


        /**
         *  特殊符号：具有特殊意义的符号
        **/
        //  /.../：代表一个模式的开始和结束
        //  ^:匹配字符串的开始，即表示行的开始
        //  $:匹配字符串的结束，即表示行的结束
        //  []:表示可匹配的列表
        //  ()：用于分组
        //  |:表示或者
        //  [^]:在[]中的尖括号表示非(取反的操作)


        var str = '123456789122'

        // var reg = /\s/  //必须有任何的空白字符
        // var reg = /\d/   //必须有任何一个数字
        // var reg = /^\d$/ //必须为一个数字
        // var reg = /\w/  //必须包含一个数字或字母或下划线
        // var reg = /^\d{2}$/    //必须为两个数字
        // var reg = /^\d{2,5}$/ //必须为2到5位的数字
        // var reg = /^a{1,1}[0-9]{1,}$/ //以a开头，后面只能出现数字
        // var reg =/^f{1}\d{9}$|^f{1}\d{0}$/ //以f开头后面只能以9个数字结尾或没有数字
        // var reg=/^[a-z]\d?$/    //以字母a到z开头，后面不写数字或只写一个数字
        // var reg=/^(abc){2}$/    //将abc作为一个整体，连续出现两次
        const reg = /^1\d{10}$/
        console.log(reg.test(str));

    </script>
</body>

</html>